home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 21
/
Aminet 21 (1997)(GTI - Schatztruhe)[!][Oct 1997].iso
/
Aminet
/
dev
/
amos
/
AMCAFExa.lha
/
AMCAF_Examples
/
BigAmcafIntro.AMOS
/
BigAmcafIntro.amosSourceCode
Encoding:
Amiga
Atari
Commodore
DOS
FM Towns/JPY
Macintosh
Macintosh JP
NeXTSTEP
RISC OS
UTF-8
Wrap
AMOS Source Code
|
1996-01-19
|
39.6 KB
|
1,439 lines
' ************************************* Commands used:
' * * Nearly every command, that are useful
' * Big AMCAF Introduction V1.1 * for demos.
' * Written by Chris Hodges *
' * *
' *************************************
'
' This demo needs lots of mem! Compile and start from workbench if out of
' memory.
Set Buffer 40
Break Off
Close Editor : Close Workbench
Hide On
Extension_8_0EA2 "Data/AMCAFAdvert.Abk",9
Extension_8_0472 "RAM:Tempfile",9
Erase 9
Load "RAM:Tempfile"
Kill "RAM:Tempfile"
Extension_8_0EA2 "Data/mod.4spirits",-3
Reserve As Chip Work 999,40*256
Set Tempras Start(999),Length(999)
Amos Lock : E=Execall(-132)
Extension_8_10F2 0 : Extension_8_10C6 64 : Extension_8_10D6 15 : Extension_8_108E 3
NEWAERA
AMCAF
ROTBOX[$8,$FFF]
SPLINTERS
SHADEBOBS
SHADPIXELS
TDSTARS
PROTRACKER
HAMFADE
CONVGREY
ROTBOX[0,$FFF]
GLENZLINES
PIXELWAVE
FILCIRCLE
ROTBOX[$808,$0]
BLTCIRCLE
TDCUBEGLENZ
TDCUBELIGHT
RAIFADE
SCHWABLPIC
COMMANDLIST
ROTBOX[0,$448]
THEEND
CREDITS
FINALNOTE
E=Execall(-138) : Amos Unlock
CONTACT
End
Procedure NEWAERA
Dim T$(3)
T$(0)="A NEW AERA HAS BROKEN!"
T$(1)="AMOS PROGRAMMING HAS NEVER BEEN SO POWERFUL!"
T$(2)="CHRIS HODGES"
T$(3)="IS PROUD TO PRESENT"
Screen Open 0,352,288,8,0
Curs Off : Flash Off : Paper 0 : Pen 1 : Cls
Screen Display 0,112,$20,352,288
Palette 0,0,0,0,0,0,0,0
Extension_8_1204 10
Gr Writing 0
Double Buffer
Autoback 0
Extension_8_0A94
Extension_8_0A7E 9,70
Extension_8_0BCC 0,1
Extension_8_0B92
Extension_8_0B78 0,0
Extension_8_0AD0
Fade 3,0,$444,$888,$FFF,0,$444,$888,$FFF
TIM=0 : TP=0
Ink 4
Repeat
Extension_8_0AB8 184-Rnd(8),152-Rnd(8)
Extension_8_0B78 Rnd(4)-2,Rnd(4)-2
If TIM=250 or TIM=251 Then Extension_8_121C 0,2
Extension_8_0AFC
If TIM=50 or TIM=51
Fade 3,0,$444,$888,$FFF,$F,$44F,$88F,$FFF
T$=T$(TP) : Y=144-Len(T$)/2
Do
If Text Length(T$)<320
Text 176-Text Length(T$)/2,Y+Text Base,T$
Exit
Else
P=1
For A=1 To Len(T$)
If(Text Length(Left$(T$,A))<320) and(Mid$(T$,A,1)=" ")
P=A
End If
Next
D$=Left$(T$,P)
Text 176-Text Length(D$)/2,Y+Text Base,D$
T$=Mid$(T$,P+1)
Add Y,16
End If
Loop
End If
If TIM=200
Fade 3,0,$444,$888,$FFF,0,$444,$888,$FFF
End If
If TIM=252 Then TIM=0 : Inc TP : If TP=4 Then Fade 3
Screen Swap
Wait Vbl
Inc TIM
Until TP=4 and TIM>48
Screen Close 0
End Proc
Procedure AMCAF
Unpack 12 To 2 : Screen Hide 2
Screen Open 0,320,128,2,0
Curs Off : Flash Off : Paper 0 : Pen 1 : Cls 0
Double Buffer
Autoback 0
Palette 0,0
Screen Open 1,320,256,2,0
Curs Off : Flash Off : Paper 0 : Pen 1
Palette 0,0
Do
Read X1,Y1
Exit If X1=-1
OX=X1 : OY=Y1
Do
Read X2,Y2
Exit If X2=-1
Extension_8_1030 X1,Y1 To X2,Y2,1,-1
X1=X2 : Y1=Y2
Loop
Extension_8_1030 X1,Y1 To OX,OY,1,-1
Loop
Extension_8_1042 1,0
Extension_8_1258
Wait Vbl
Palette $FFF,0
Fade 1
Repeat
C=Colour(0)
Colour Back C : View
Until C=0
Wait Vbl
Screen Open 1,320,128,32,0 : Screen Hide 1
Curs Off : Flash Off : Paper 0 : Pen 1 : Cls 0
Screen Display 1,128,40+129,320,128
For A=0 To 31 : Colour A,0 : Next
Screen 0
Fade 3,$8,$FFF
R1MX1=319 : R1MY1=126 : R1MX2=0 : R1MY2=0
R2MX1=319 : R2MY1=126 : R2MX2=0 : R2MY2=0
' WX=0 : WY=256 : WZ=512
WX=-1856 : WY=-672 : WZ=-2272
' ZP=160
ZP=2016
Do
Extension_8_1234 0,0,R2MX1,R2MY1 To R2MX2+1,R2MY2+1
Add WX,16
Add WY,8
Add WZ,24
If ZP>160 Then Add ZP,-16 Else Exit
' Add ZP,16 : If ZP>2000 Then Exit
Extension_8_1122 0,0,ZP
Extension_8_1138 WX,WY,WZ
Extension_8_1152
R2MX1=R1MX1 : R2MY1=R1MY1 : R2MX2=R1MX2 : R2MY2=R1MY2
R1MX1=319 : R1MY1=126 : R1MX2=0 : R1MY2=0
ST=Start(11)
Colour Back Colour(0) : View
Do
X1=Deek(ST) : Y1=Deek(ST+2) : Add ST,4
Exit If X1=$8000
X1= Extension_8_1178(X1,Y1,0)+160 : Y1= Extension_8_1184 +64
OX=X1 : OY=Y1
R1MX1=Max(Min(R1MX1,X1),0)
R1MY1=Max(Min(R1MY1,Y1),0)
R1MX2=Min(Max(R1MX2,X1),319)
R1MY2=Min(Max(R1MY2,Y1),126)
Do
X2=Deek(ST) : Y2=Deek(ST+2) : Add ST,4
Exit If X2=$8000
X2= Extension_8_1178(X2,Y2,0)+160 : Y2= Extension_8_1184 +64
Extension_8_1030 X1,Y1 To X2,Y2,1,-1
R1MX1=Max(Min(R1MX1,X2),0)
R1MY1=Max(Min(R1MY1,Y2),0)
R1MX2=Min(Max(R1MX2,X2),319)
R1MY2=Min(Max(R1MY2,Y2),126)
X1=X2 : Y1=Y2
Loop
Extension_8_1030 X1,Y1 To OX,OY,1,-1
Loop
Colour Back Colour(0) : View
Extension_8_1066 0,0,R1MX1,R1MY1,R1MX2+1,R1MY2+1
Screen Swap
Colour Back Colour(0) : View
Wait Vbl
Loop
Get Palette 2
Screen 2
For A=1 To 31 : Colour A,$FFF : Next
Screen To Front 2
Screen Show 2
Fade 3 To 0
Screen 1 : Screen Show
Palette $8,$119,$23A,$44B,$66B,$88C,$AAD,$CCE,$FFF,$ECE,$DAD,$C8C,$B6B,$A4B,$A2A,$919,$808,$917,$A16,$B24,$B33,$C64,$D95,$EC7,$FF8,$BE7,$8D5,$4D5,$3B7,$2B9,$28A,$149
ST=Start(8)
Extension_8_0F56 0
Extension_8_0F6C 5
For A=1 To Length(8)/4
If(A and 3)=0 Then Wait Vbl
Extension_8_0F84 1,Deek(ST)+16,Deek(ST+2),1 : Add ST,4
Next
' Show : Wait Vbl : Limit Mouse
' Reserve As Work 8,10000*4
' ST=Start(8)
' Wait Key
' For A=0 To 9999
' Wait Vbl
' I$=Inkey$
' If I$=" " Then Repeat : I$=Inkey$ : Multi Wait : Until I$<>""
' Exit If I$=Chr$(27)
' OX=XM : OY=YM
' XM=X Screen(X Mouse) : YM=Y Screen(Y Mouse)
' If OX<>XM or OY<>YM
' Shade Pix XM,YM
' Shade Pix XM,YM
' Shade Pix XM-1,YM
' Shade Pix XM+1,YM
' Shade Pix XM,YM-1
' Shade Pix XM,YM+1
' Doke ST,XM : Doke ST+2,YM : Add ST,4
' End If
' Next
' Bsave "dh2:Path.bin",Start(9) To ST
Wait 50
Screen 0
For A=1 To 31 : Colour A,$8 : Next
Screen 1
Fade 1 To 0 : Wait 16
Screen 2
Fade 1 To 0 : Wait 16
Screen Close 0
Screen Close 1
Screen Close 2
Pop Proc
Data 16,8,88,8,88,32,64,32,64,248,40,248,40,32,16,32,-1,-1
Data 112,8,136,8,136,112,168,112,168,8,192,8,192,248,168,248
Data 168,144,136,144,136,248,112,248,-1,-1
Data 216,8,296,8,296,32,240,32,240,112,272,112,272,144
Data 240,144,240,224,296,224,296,248,216,248,-1,-1
Data -1,-1
End Proc
Procedure ROTBOX[OC,NC]
Screen Open 0,352,288,2,0
Curs Off : Flash Off : Paper 0 : Pen 1 : Cls 0
Palette OC,NC
Screen Display 0,112,$20,352,288
Double Buffer
Autoback 0
W=0 : Z=0
Repeat
Extension_8_121C 0,0
Add W,8
If Z<256 Then Add Z,4
SX= Extension_8_1114(W,Z) : SY= Extension_8_1106(W,Z)
Extension_8_1030 176+SX,144+SY To 176-SY,144+SX,1,-1
Extension_8_1030 176-SY,144+SX To 176-SX,144-SY,1,-1
Extension_8_1030 176-SX,144-SY To 176+SY,144-SX,1,-1
Extension_8_1030 176+SY,144-SX To 176+SX,144+SY,1,-1
Extension_8_1042 0,0
Screen Swap
Wait Vbl
'Until W=16
Until W=640
Colour Back NC : View : Wait Vbl
Screen Close 0
End Proc
Procedure SPLINTERS
Unpack 13 To 1 : Screen Hide
Screen Open 0,320,256,8,0
Curs Off : Flash Off : Paper 0 : Pen 1 : Cls 0
For A=0 To 7 : Colour A,$FFF : Next
Extension_8_1204 14
T$="AMCAF Effects"
Ink 1,0 : Text 160-Text Length(T$)/2,200,T$
T$="SPLINTERS IN ACTION!"
Y=100 : X=160-Len(T$)*8
For A=1 To Len(T$)
L=Asc(Mid$(T$,A,1))-32
XL=(L mod 20)*16 : YL=(L/20)*16
Screen Copy 1,XL,YL,XL+16,YL+16 To 0,X,Y
Add X,16
Next
Double Buffer
Autoback 0
Extension_8_0D66
Extension_8_0DB8 0,1
Extension_8_0F2A 75
Fade 2 To 1
Y=100 : X=160-Len(T$)*8
For A=1 To Len(T$)
Colour Back Colour(0) : View
M=Rnd(10)
If M<5 Then M=-1
Extension_8_0E62 M
Extension_8_0D8A Rnd(8)-4,Rnd(8)-4
C= Extension_8_0CF2(0,0,X,Y To X+16,Y+16)
If C>0
Extension_8_0D4E 7,C+1
Colour Back Colour(0) : View
Extension_8_0D24 9,256
Extension_8_0D2E 0,0,X,Y To X+16,Y+16,9,1
Extension_8_0DA4
Repeat
Colour Back Colour(0) : View
Screen Swap
Wait Vbl
Extension_8_0DEC
Until Extension_8_0F40 =0
End If
Add X,16
Next
Fade 2
Repeat
Colour Back Colour(0) : View
Until Colour(1)=0
Screen Close 0
Screen Close 1
End Proc
Procedure SHADEBOBS
Screen Open 0,320,256,64,0
Curs Off : Flash Off : Paper 0 : Pen 1 : Cls 0
For A=0 To 31 : Colour A,0 : Next
Wait Vbl
Extension_8_1204 14
T$="AMCAF Effects"
Ink 32,0 : Text 160-Text Length(T$)/2,200,T$
Extension_8_1204 10
T$="SHADE BOBS!"
Ink 32,0 : Text 160-Text Length(T$)/2,124,T$
Extension_8_0F6C 5
Extension_8_0F56 1
R1=0 : R2=0 : D1=1 : D2=1
XM= Extension_8_092E(160,4)
YM= Extension_8_092E(128,4)
Fade 2,$8,$119,$23A,$44B,$66B,$88C,$AAD,$CCE,$FFF,$ECE,$DAD,$C8C,$B6B,$A4B,$A2A,$919,$808,$917,$A16,$B24,$B33,$C64,$D95,$EC7,$FF8,$BE7,$8D5,$4D5,$3B7,$2B9,$28A,$149
For A=1 To 600
Colour Back Colour(0) : View
Repeat : Until Timer : Timer=0
If Rnd(75)=0 Then D1=-D1
If Rnd(75)=0 Then D2=-D2
XM=XM+ Extension_8_1114(R1,100)
YM=YM+ Extension_8_1106(R2,100)
If XM<- Extension_8_092E(G,4) Then Add XM, Extension_8_092E(320+G*2,4)
If XM> Extension_8_092E(320+G,4) Then Add XM,- Extension_8_092E(320+G*2,4)
If YM<- Extension_8_092E(G,4) Then Add YM, Extension_8_092E(256+G*2,4)
If YM> Extension_8_092E(256+G,4) Then Add YM,- Extension_8_092E(256+G*2,4)
Add R1,Rnd(14)*D1
Add R2,Rnd(14)*D2
Extension_8_0F84 0, Extension_8_093A(XM,4), Extension_8_093A(YM,4),2
Extension_8_0F9E 0,319- Extension_8_093A(XM,4),255- Extension_8_093A(YM,4),3
If A=568 Then Fade 2
Next
End Proc
Procedure SHADPIXELS
Screen Open 0,320,256,16,0
Curs Off : Flash Off : Paper 0 : Pen 1 : Cls 0
For A=0 To 15 : Colour A,0 : Next
Wait Vbl
Extension_8_1204 14
T$="AMCAF Effects"
Ink 8,0 : Text 160-Text Length(T$)/2,200,T$
Extension_8_1204 10
T$="SHADE PIXELS!"
Ink 8,0 : Text 160-Text Length(T$)/2,124,T$
Fade 2,$FFF,$CCF,$AAF,$88F,$66F,$44F,$22F,$F,$884,$773,$662,$551,$440,$330,$220,$110
Wait Vbl
B=Rnd(1023)
C=0 : A=Rnd(1023)
Timer=0
Repeat
If(A and 31)=0 Then Inc C
Add A,6 : Add B,7
X= Extension_8_1114((A+C)/4,62)+ Extension_8_1106((A-B+C)/4,62)+159
Y= Extension_8_1106(((A+B)/2+C)/4,62)+ Extension_8_1114((B*2+C)/4,62)+127
Extension_8_126A X,Y
Extension_8_126A X+1,Y
Extension_8_126A X,Y+1
Extension_8_126A X+1,Y+1
If Timer=400 Then Fade 2
D=Colour(0)
Colour Back D : View
Until D=0
Screen Close 0
End Proc
Procedure FILCIRCLE
Screen Open 1,320,256,2,0
Curs Off : Flash Off : Paper 0 : Pen 1 : Cls 0
Palette 0,0
Wait Vbl
Extension_8_1204 14
T$="AMCAF Commands"
Ink 1,0 : Text 160-Text Length(T$)/2,200,T$
Extension_8_1204 10
T$="FCIRCLE & FELLIPSE"
Ink 1,0 : Text 160-Text Length(T$)/2,188+Text Base,T$
Screen Open 0,320,256,4,0
Curs Off : Flash Off : Paper 0 : Pen 1 : Cls 0
For A=0 To 31 : Colour A,0 : Next
Double Buffer
Autoback 0
Wait Vbl
Dual Playfield 0,1
X1=100*4 : Y1=10*4 : SY1=0 : SX1=8 : R1=4
SR1=1
X2=200*4 : Y2=30*4 : SY2=0 : SX2=-4 : R2=20
Fade 2,$808,$F88,$FF8,$8F8,0,0,0,0,0,$FFF
TIM=0 : Timer=0
Repeat
Colour Back Colour(0) : View
Extension_8_1234 0,0,0,0 To 320,189
Inc TIM
If TIM=50 Then Set Pattern Rnd(34) : TIM=0
Add R1,SR1 : If R1>31 or R1<5 Then SR1=-SR1
Add X1,SX1
Add Y1,SY1
If Y1=>(188-R1)*4
Y1=(188-R1)*4
SY1=1-SY1
Else
Inc SY1
End If
If X1=>(319-R1)*4 or X1<=R1*4
SX1=-Sgn(SX1)*(Rnd(5)+4)
X1=Min(Max(X1,R1*4+1),(319-R1)*4-1)
End If
R2= Extension_8_1106(X1+Y1,10)+20
Add X2,SX2
Add Y2,SY2
If Y2=>(188-R2)*4
Y2=(188-R2)*4
SY2=1-SY2
Else
Inc SY2
End If
If X2=>(319-(40-R2))*4 or X2<=(40-R2)*4
SX2=-Sgn(SX2)*(Rnd(5)+4)
X2=Min(Max(X2,(40-R2)*4+1),(319-(40-R2))*4-1)
End If
Extension_8_1234 0,1,0,0 To 320,189
Colour Back Colour(0) : View
Ink 1,2 : Extension_8_05E6 X1/4,Y1/4,R1
Ink 3,2 : Extension_8_05F8 X2/4,Y2/4,40-R2,R2
Screen Swap
Wait Vbl
If Timer>600 Then Fade 2,$808,$808,$808,$808,0,0,0,0,0,$808
D=Colour(9)
Colour Back D : View
Until D=$808
Screen Close 0
Screen Close 1
End Proc
Procedure BLTCIRCLE
Dim V(3)
Screen Open 1,320,256,2,0 : Screen Hide
Curs Off : Flash Off : Paper 0 : Pen 1 : Cls
Screen Open 0,320,256,16,0
Curs Off : Flash Off : Paper 0 : Pen 1 : Cls
For A=0 To 15 : Colour A,0 : Next
Wait Vbl
Extension_8_1204 14
T$="AMCAF Commands"
Ink 8,0 : Text 160-Text Length(T$)/2,200,T$
Extension_8_1204 10
T$="BCIRCLE"
Ink 8,0 : Text 160-Text Length(T$)/2,124,T$
Extension_8_1204 14
Double Buffer
Autoback 0
Fade 2,0,$40,$40,$80,$40,$80,$80,$C0,$FFF,$FCF,$FCF,$F8F,$FCF,$F8F,$F8F,$F4F
WI=0 : BP=0
Timer=0 : FAD=0
Screen 1
Repeat
Add WI,10
Add BP,1,0 To 2
For A=0 To 3
V= Extension_8_10E6(A)
If V Then V(A)=V Else V(A)=Max(V(A)-4,0)
X= Extension_8_1106(WI,A*80-120)+160
Y= Extension_8_1114(WI,A*80-120)+128
R=V(A)/2+1
Extension_8_1258
Extension_8_1372 X,Y,R-1,0
Next
Extension_8_1058 1,0 To 0,BP
Screen Swap
Extension_8_121C 1,0
Wait Vbl
If Timer>400 and FAD=0 Then FAD=1 : Screen 0 : Fade 2 : Screen 1
Until Timer>434
Screen Close 0
Screen Close 1
End Proc
Procedure PROTRACKER
Dim V(3)
Screen Open 0,320,256,4,0
Curs Off : Flash Off : Paper 0 : Pen 1 : Cls
Palette 0,0,0,0
Wait Vbl
Extension_8_1204 14
T$="AMCAF Supports"
Ink 2,0 : Text 160-Text Length(T$)/2,200,T$
Extension_8_1204 10
T$="PROTRACKER-MUSIC"
Ink 2,0 : Text 160-Text Length(T$)/2,124,T$
Extension_8_1204 14
WX=0 : BMP=125 : VOL=64
Text 0,Text Base,"Speed :"
Text 0,Text Base+6,"Volume:"
Double Buffer
Autoback 0
Fade 2,0,$FFF,$FFF,$FFF
Timer=0
Repeat
Add WX,-16
Extension_8_1234 0,0,32,56 To 288,248
Extension_8_1122 0,0,160
Extension_8_1138 512,WX,0
Extension_8_1152
For A=0 To 3
V= Extension_8_10E6(A)
If V Then V(A)=V Else V(A)=Max(V(A)-4,0)
X=A*40-60 : Y=40-V(A)
X1= Extension_8_1178(X-10,40,10)+160 : Y1= Extension_8_1184 +128
X2= Extension_8_1178(X+10,40,10)+160 : Y2= Extension_8_1184 +128
Extension_8_1030 X1,Y1 To X2,Y2,1,1
X3= Extension_8_1178(X+10,40,-10)+160 : Y3= Extension_8_1184 +128
Extension_8_1030 X2,Y2 To X3,Y3,1,1
X4= Extension_8_1178(X-10,40,-10)+160 : Y4= Extension_8_1184 +128
Extension_8_1030 X3,Y3 To X4,Y4,1,1
X5= Extension_8_1178(X-10,Y,10)+160 : Y5= Extension_8_1184 +128
Extension_8_1030 X4,Y4 To X1,Y1,1,1
X6= Extension_8_1178(X+10,Y,10)+160 : Y6= Extension_8_1184 +128
Extension_8_1030 X1,Y1 To X5,Y5,1,1
X7= Extension_8_1178(X+10,Y,-10)+160 : Y7= Extension_8_1184 +128
Extension_8_1030 X2,Y2 To X6,Y6,1,1
X8= Extension_8_1178(X-10,Y,-10)+160 : Y8= Extension_8_1184 +128
Extension_8_1030 X3,Y3 To X7,Y7,1,1
Extension_8_1030 X4,Y4 To X8,Y8,1,1
Extension_8_1030 X5,Y5 To X6,Y6,1,1
Extension_8_1030 X6,Y6 To X7,Y7,1,1
Extension_8_1030 X7,Y7 To X8,Y8,1,1
Extension_8_1030 X8,Y8 To X5,Y5,1,1
Next
T=Timer
If T>127 Then VOL= Extension_8_1114((T-128)*4,16)+48 : Extension_8_10C6 VOL
If T>255 Then BMP= Extension_8_1106((T-255)*2,25)+125 : Extension_8_10F2 BMP
If T>868 Then Fade 2
Ink 1
Text 64,Text Base, Extension_8_0EC8(BMP,3)
Text 64,Text Base+6, Extension_8_0EC8(VOL,2)
Screen Swap
Wait Vbl
Until T>900
Extension_8_10F2 0
Extension_8_10C6 64
Screen Close 0
End Proc
Procedure HAMFADE
Unpack 15 To 0 : Screen Hide
For A=128 To 0 Step -2
Screen Display 0,128,40+A,320,256-A*2
Screen Show
Wait Vbl
Next
Wait 300
For A=0 To 15
Extension_8_0FBA 0
Wait Vbl
Next
Screen Close 0
End Proc
Procedure CONVGREY
Unpack 15 To 0 : Screen Hide
Wait Vbl
Trap Screen Open 1,320,256,16,0
If Errtrap Then Screen Close 0 : Pop Proc
Curs Off : Flash Off : Paper 0 : Pen 1 : Cls 0
For A=0 To 15 : Colour A,A*$111 : Next
Wait Vbl
Extension_8_0976 0 To 1
Extension_8_1204 14
Gr Writing 0
T$="AMCAF Commands"
Ink 15,0 : Text 160-Text Length(T$)/2,200,T$
Extension_8_1204 10
T$="Convert Grey"
Ink 15,0 : Text 160-Text Length(T$)/2,124,T$
Wait 100 : Fade 2 : Wait 32
Screen Close 0
Screen Close 1
End Proc
Procedure TDSTARS
Screen Open 0,352,288,8,0
Curs Off : Flash Off : Paper 0 : Pen 1 : Cls
Screen Display 0,112,$20,352,288
Palette 0,0,0,0,0,0,0,0
Wait Vbl
Extension_8_1204 14
T$="AMCAF Effects"
Ink 4,0 : Text 176-Text Length(T$)/2,208,T$
Extension_8_1204 10
T$="3D STARS"
Ink 4,0 : Text 176-Text Length(T$)/2,132,T$
Double Buffer
Autoback 0
Extension_8_0A94
Extension_8_0A7E 9,80
Extension_8_0BCC 0,1
Extension_8_0B78 0,0
Extension_8_0B92
Extension_8_0AD0
Fade 3,0,$444,$888,$FFF,$FF0,$FF4,$FF8,$FFF
TIM=0 : MD=0
Repeat
If TIM=100 Then Inc MD : TIM=0
If MD=8 Then MD=7 : Fade 2
If MD and 1
Extension_8_0BAE
Else
Extension_8_0B92
End If
If MD and 2
Extension_8_0B78 0,5
Else
Extension_8_0B78 Rnd(4)-2,Rnd(4)-2
End If
If MD and 4
T=Timer*4
Extension_8_0AB8 Extension_8_1114(T,64)+160, Extension_8_1106(T,64)+128
Else
Extension_8_0AB8 184-Rnd(8),152-Rnd(8)
End If
Extension_8_0AFC
Screen Swap
Wait Vbl
Inc TIM
Until Colour(7)=0
Screen Close 0
End Proc
Procedure TDCUBEGLENZ
Gosub INITPOINTS
Gosub INITSCREEN
WX=0 : WY=0 : WZ=0
S=0 : GLENZ=0
Fade 2 To 1
Screen 1
Gosub CALCCOORDS
Timer=0
Repeat
If(Timer mod 100)=98 Then GLENZ=1-GLENZ
If Timer>568 Then Screen 0 : Fade 2 : Screen 1
Gosub DRAOBJ
Screen Swap 0
Gosub CALCCOORDS
S=1-S
Wait Vbl
Until Timer>600
Screen Close 0
Screen Close 1
Pop Proc
INITPOINTS:
Read ANZP
Dim PT(ANZP,2),CM(ANZP,1)
For A=1 To ANZP
Read PT(A,0),PT(A,1),PT(A,2)
Next
Read ANZL
Dim LC(ANZL)
For A=1 To ANZL
Read LC(A)
Next
Dim DB(6,3,1)
For A=0 To(ANZL/4)-1
DB(A,0,0)=319 : DB(A,1,0)=255 : DB(A,2,0)=0 : DB(A,3,0)=0
DB(A,0,1)=319 : DB(A,1,1)=255 : DB(A,2,1)=0 : DB(A,3,1)=0
Next
Return
INITSCREEN:
Screen Open 1,320,256,2,0 : Screen Hide
Curs Off : Flash Off : Paper 0 : Pen 1 : Cls
Screen Open 0,320,256,64,0 : Screen To Front 1
Curs Off : Flash Off : Paper 0 : Pen 63 : Cls 0
For A=0 To 31 : Colour A,0 : Next
Dim LG(5)
For A=0 To 5 : LG(A)=Logbase(A) : Next
Screen 1
Dim CL(4)
CL(0)=-$411 : CL(1)=-$141 : CL(2)=-$114 : CL(3)=$22 : CL(4)=$220
For A=0 To 31
C=$AAA
For B=0 To 4
If Extension_8_04F8(B) and A Then C= Extension_8_0EFC(C,CL(B),$0 To $FFF)
Next
Colour A,C
Next
Screen 0
Double Buffer
Autoback 0
Return
CALCCOORDS:
Extension_8_1122 Extension_8_1106(WZ,250), Extension_8_1106(WY,250),2100+ Extension_8_1106(WX,1900)
Add WX,9
Add WY,10
Add WZ,11
Extension_8_1138 WX,WY,WZ
Extension_8_1152
For A=1 To ANZP
CM(A,0)= Extension_8_1178(PT(A,0),PT(A,1),PT(A,2))+160
CM(A,1)= Extension_8_1184 +128
Next
Return
DRAOBJ:
BP=0
For A=1 To ANZL Step 4
MX1=319 : MY1=255 : MX2=0 : MY2=0
X1=CM(LC(A),0) : Y1=CM(LC(A),1)
X2=CM(LC(A+1),0) : Y2=CM(LC(A+1),1)
X3=CM(LC(A+2),0) : Y3=CM(LC(A+2),1)
If GLENZ=0
C=(X3-X1)*(Y2-Y1)-(X2-X1)*(Y3-Y1)
Else
C=-1
End If
If C<0
Extension_8_1030 X1,Y1 To X2,Y2,1,-1
X4=CM(LC(A+3),0) : Y4=CM(LC(A+3),1)
Extension_8_1030 X2,Y2 To X3,Y3,1,-1
MX1=Max(Min(Min(Min(Min(Min(X1,MX1),X2),X3),X4),319),0)
MY1=Max(Min(Min(Min(Min(Min(Y1,MY1),Y2),Y3),Y4),255),0)
Extension_8_1030 X3,Y3 To X4,Y4,1,-1
MX2=Min(Max(Max(Max(Max(Max(X1,MX2),X2),X3),X4),0),319)
MY2=Min(Max(Max(Max(Max(Max(Y1,MY2),Y2),Y3),Y4),0),255)
Extension_8_1030 X4,Y4 To X1,Y1,1,-1
BX1=Min(MX1,DB(BP,0,S)) : BY1=Min(MY1,DB(BP,1,S))
BX2=Max(MX2,DB(BP,2,S)) : BY2=Max(MY2,DB(BP,3,S))
If BX2>BX1 and BY2>BY1
Extension_8_1078 1,0,BX1,BY1,BX2+1,BY2+1 To 0,BP
End If
DB(BP,0,S)=MX1 : DB(BP,1,S)=MY1 : DB(BP,2,S)=MX2 : DB(BP,3,S)=MY2
If MX2>MX1 and MY2>MY1
Extension_8_1234 1,0,MX1,MY1 To MX2+1,MY2+1
End If
Else
If DB(BP,2,S)>DB(BP,0,S) and DB(BP,3,S)>DB(BP,1,S)
Extension_8_1234 0,BP,DB(BP,0,S),DB(BP,1,S) To DB(BP,2,S)+1,DB(BP,3,S)+1
End If
DB(BP,0,S)=319 : DB(BP,1,S)=255 : DB(BP,2,S)=0 : DB(BP,3,S)=0
End If
Inc BP
Next
Return
' 1_____2
' 5/____/|
' | | |6|
' |4|__|_|3
' |/___|/
' 8 7
Data 8
Data -100,-100,-100
Data 100,-100,-100
Data 100,-100,100
Data -100,-100,100
Data -100,100,-100
Data 100,100,-100
Data 100,100,100
Data -100,100,100
' Axi
Data 6*4
Data 1,2,6,5
Data 4,3,2,1
Data 2,3,7,6
Data 3,4,8,7
Data 4,1,5,8
Data 6,7,8,5
End Proc
Procedure TDCUBELIGHT
Screen Open 0,320,256,16,0
Curs Off : Flash Off : Paper 0 : Pen 1 : Cls 0
For A=0 To 15 : Colour A,0 : Next
Wait Vbl
Extension_8_1204 14
T$="AMCAF Commands"
Ink 8,0 : Text 160-Text Length(T$)/2,200,T$
Extension_8_1204 10
T$="FAST BLITTER COMMANDS"
Ink 8,0 : Text 160-Text Length(T$)/2,124,T$
Extension_8_1204 14
AD=$DFF006
B=Deek(AD) : ST=Logbase(2)
For A=1 To 20*256
Add B,Deek(AD)
Doke ST,B : Add ST,2
Next
Double Buffer
Autoback 0
Dim C(5),NC(7)
C(0)=$F00
C(1)=$F0
C(2)=$F
C(3)=$F0F
C(4)=$FF0
C(5)=$FF
Read ANZP
Dim PT(ANZP,2),CM(ANZP,1)
For A=1 To ANZP
Read PT(A,0),PT(A,1),PT(A,2)
Next
Read ANZL
Dim LC(ANZL)
For A=1 To ANZL
Read LC(A)
Next
M1X1=319 : M1Y1=255 : M1X2=0 : M1Y2=0
M2X1=319 : M2Y1=255 : M2X2=0 : M2Y2=0
Fade 2,0,0,0,0,0,0,0,0,$FFF,$FFF,$FFF,$FFF,$DDD,$DDD,$DDD,$DDD
Timer=0
Repeat
Extension_8_1234 0,0,M2X1,M2Y1 To M2X2+1,M2Y2+1
Add WX,7
Add WY,-9
Add WZ,-10
PX= Extension_8_1106(WY,250) : PY= Extension_8_1114(WZ,250) : PZ=2100+ Extension_8_1106(WX,1900)
Extension_8_1122 PX,PY,PZ
Extension_8_1138 WX,WY,WZ
Extension_8_1152
Extension_8_1234 0,1,M2X1,M2Y1 To M2X2+1,M2Y2+1
M2X1=M1X1 : M2Y1=M1Y1 : M2X2=M1X2 : M2Y2=M1Y2
M1X1=319 : M1Y1=255 : M1X2=0 : M1Y2=0
For A=1 To ANZP
CM(A,0)= Extension_8_1178(PT(A,0),PT(A,1),PT(A,2))+160
CM(A,1)= Extension_8_1184 +128
Next
BP=1 : FL=9
For A=1 To ANZL Step 4
X1=CM(LC(A),0) : Y1=CM(LC(A),1)
X2=CM(LC(A+1),0) : Y2=CM(LC(A+1),1)
X3=CM(LC(A+2),0) : Y3=CM(LC(A+2),1)
C=(X3-X1)*(Y2-Y1)-(X2-X1)*(Y3-Y1)
If C<0
X4=CM(LC(A+3),0) : Y4=CM(LC(A+3),1)
If BP and 1
Extension_8_1030 X1,Y1 To X2,Y2,1,-1
Extension_8_1030 X2,Y2 To X3,Y3,1,-1
Extension_8_1030 X3,Y3 To X4,Y4,1,-1
Extension_8_1030 X4,Y4 To X1,Y1,1,-1
End If
M1X2=Min(Max(Max(Max(Max(Max(X1,M1X2),X2),X3),X4),0),319)
M1Y2=Min(Max(Max(Max(Max(Max(Y1,M1Y2),Y2),Y3),Y4),0),255)
M1X1=Max(Min(Min(Min(Min(Min(X1,M1X1),X2),X3),X4),319),0)
M1Y1=Max(Min(Min(Min(Min(Min(Y1,M1Y1),Y2),Y3),Y4),255),0)
If BP and 2
Extension_8_1030 X1,Y1 To X2,Y2,2,-2
Extension_8_1030 X2,Y2 To X3,Y3,2,-2
Extension_8_1030 X3,Y3 To X4,Y4,2,-2
Extension_8_1030 X4,Y4 To X1,Y1,2,-2
End If
Z=127-Abs( Extension_8_11D4(PT(FL,0),PT(FL,1),PT(FL,2))-PZ)
C=C(FL-9)
C0= Extension_8_03B2(C(FL-9))*Z
C1= Extension_8_03C0(C(FL-9))*Z
C2= Extension_8_03D0(C(FL-9))*Z
NC(BP)= Extension_8_0A0E(C0/128,C1/128,C2/128)
NC(BP+4)= Extension_8_0EFC(NC(BP),-$222,0 To $FFF)
Inc BP
Exit If BP=4
End If
Inc FL
Next
Extension_8_1066 0,0,M1X1,M1Y1,M1X2+1,M1Y2+1
Extension_8_1066 0,1,M1X1,M1Y1,M1X2+1,M1Y2+1
If Extension_8_060E >68000 Then Extension_8_1042 0,2
Screen Swap
For A=1 To 7 : Colour A,NC(A) : Next
Wait Vbl
If Timer>768 Then Fade 2
Until Timer>800
Screen Close 0
Pop Proc
' 1_____2
' 5/____/|
' | | |6|
' |4|__|_|3
' |/___|/
' 8 7
Data 14
Data -100,-100,-100
Data 100,-100,-100
Data 100,-100,100
Data -100,-100,100
Data -100,100,-100
Data 100,100,-100
Data 100,100,100
Data -100,100,100
Data 0,126,0
Data -126,0,0
Data 0,0,126
Data 126,0,0
Data 0,126,0
Data 0,0,-126
' Axi
Data 6*4
Data 1,2,6,5
Data 4,3,2,1
Data 2,3,7,6
Data 3,4,8,7
Data 4,1,5,8
Data 6,7,8,5
End Proc
Procedure GLENZLINES
Screen Open 0,320,256,16,0
Curs Off : Flash Off : Paper 0 : Pen 1 : Cls 0
For A=0 To 15 : Colour A,$FFF : Next
Wait Vbl
Extension_8_1204 14
T$="AMCAF Commands"
Ink 8,0 : Text 160-Text Length(T$)/2,200,T$
Extension_8_1204 10
T$="TURBO DRAW"
Ink 8,0 : Text 160-Text Length(T$)/2,124,T$
Extension_8_1204 14
Fade 3,0,$444,$444,$888,$444,$888,$888,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF
W=0 : BP=0
EFF=1 : TIM=0
Repeat
Add BP,1,0 To 2
Extension_8_121C 0,BP
P=0
Inc TIM : If TIM=200 Then P=EFF+1 : TIM=0
If P=2
Palette $FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF
Fade 3,0,$884,$884,$CC8,$884,$CC8,$CC8,$FFF
EFF=2
End If
If P=3
Palette $FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF
Fade 3,0,$844,$844,$C88,$844,$C88,$C88,$FFF
EFF=3
End If
If P=4
Palette $FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF
Fade 3,0,$484,$484,$8C8,$484,$8C8,$8C8,$FFF
EFF=4
End If
If P=5
Palette $FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF
Fade 3,0,$448,$448,$88C,$448,$88C,$88C,$FFF
EFF=5
End If
If P=6 Then Fade 3
Exit If P=$FF
If EFF=1
Add W,16
Add Z,2 : If Z>31 : Z=0 : Add W,-64 : End If
ZZ=Z+32 : WW=W
For A=0 To 5
SX= Extension_8_1114(WW,ZZ) : SY= Extension_8_1106(WW,ZZ)
Add ZZ,32 : Add WW,64
Extension_8_1030 160+SX,128+SY To 160-SY,128+SX,7, Extension_8_04F8(BP)
Extension_8_1030 160-SY,128+SX To 160-SX,128-SY,7, Extension_8_04F8(BP)
Extension_8_1030 160-SX,128-SY To 160+SY,128-SX,7, Extension_8_04F8(BP)
Extension_8_1030 160+SY,128-SX To 160+SX,128+SY,7, Extension_8_04F8(BP)
Next
End If
If EFF=2
Add W,16
Add Z,2 : If Z>31 : Z=0 : Add W,-32 : End If
ZZ=Z+32 : WW=W
For A=0 To 5
SX1= Extension_8_1114(WW,ZZ)+160 : SY1= Extension_8_1106(WW,ZZ)+128
SX2= Extension_8_1114(WW+341,ZZ)+160 : SY2= Extension_8_1106(WW+341,ZZ)+128
SX3= Extension_8_1114(WW+682,ZZ)+160 : SY3= Extension_8_1106(WW+682,ZZ)+128
Add ZZ,32 : Add WW,32
Extension_8_1030 SX1,SY1 To SX2,SY2,7, Extension_8_04F8(BP)
Extension_8_1030 SX2,SY2 To SX3,SY3,7, Extension_8_04F8(BP)
Extension_8_1030 SX3,SY3 To SX1,SY1,7, Extension_8_04F8(BP)
Next
End If
If EFF>2
Add W,12 : ZZ=24 : WW=W
End If
If EFF=3
For A=0 To 5
SX1= Extension_8_1114(WW,ZZ)+160 : SY1= Extension_8_1106(WW,ZZ)+128
SX2= Extension_8_1106(WW+341,ZZ)+160 : SY2= Extension_8_1114(WW+341,ZZ)+128
SX3= Extension_8_1114(WW+682,ZZ)+160 : SY3= Extension_8_1106(WW+682,ZZ)+128
Add ZZ,24 : Add WW,128
Extension_8_1030 SX1,SY1 To SX2,SY2,7, Extension_8_04F8(BP)
Extension_8_1030 SX2,SY2 To SX3,SY3,7, Extension_8_04F8(BP)
Extension_8_1030 SX3,SY3 To SX1,SY1,7, Extension_8_04F8(BP)
Next
End If
If EFF=4
For A=0 To 5
SX1= Extension_8_1106(WW,ZZ)+160 : SY1= Extension_8_1106(WW,ZZ)+128
SX2= Extension_8_1106(WW+341,ZZ)+160 : SY2= Extension_8_1114(WW+341,ZZ)+128
SX3= Extension_8_1114(WW+682,ZZ)+160 : SY3= Extension_8_1114(WW+682,ZZ)+128
Add ZZ,24 : Add WW,64
Extension_8_1030 SX1,SY1 To SX2,SY2,7, Extension_8_04F8(BP)
Extension_8_1030 SX2,SY2 To SX3,SY3,7, Extension_8_04F8(BP)
Extension_8_1030 SX3,SY3 To SX1,SY1,7, Extension_8_04F8(BP)
Next
End If
If EFF=5
For A=0 To 5
SX1= Extension_8_1114(WW,ZZ)+160 : SY1= Extension_8_1106(WW,ZZ)+128
SX2= Extension_8_1114(WW+341,ZZ)+160 : SY2= Extension_8_1114(WW+341,ZZ)+128
SX3= Extension_8_1106(WW+682,ZZ)+160 : SY3= Extension_8_1114(WW+682,ZZ)+128
Add ZZ,24 : Add WW,48
Extension_8_1030 SX1,SY1 To SX2,SY2,7, Extension_8_04F8(BP)
Extension_8_1030 SX2,SY2 To SX3,SY3,7, Extension_8_04F8(BP)
Extension_8_1030 SX3,SY3 To SX1,SY1,7, Extension_8_04F8(BP)
Next
End If
Colour Back Colour(0) : View
Wait Vbl
Until Colour(7)=0
Screen Close 0
End Proc
Procedure PIXELWAVE
Dim SI(255),CO(255)
For A=0 To 255
SI(A)= Extension_8_1106(A*4,31) : CO(A)= Extension_8_1114(A*4,31)
Next
Screen Open 1,320,256,2,0
Curs Off : Flash Off : Paper 0 : Pen 1 : Cls
Palette 0,0
Wait Vbl
Extension_8_1204 14
T$="AMCAF Commands"
Ink 1,0 : Text 160-Text Length(T$)/2,200,T$
Extension_8_1204 10
T$="TURBO PLOT"
Ink 1,0 : Text 160-Text Length(T$)/2,124,T$
Screen Open 0,320,256,2,0
Curs Off : Flash Off : Paper 0 : Pen 1 : Cls
Palette 0,0,0,0,0,0,0,0,0,0
Double Buffer
Autoback 0
Wait Vbl
Dual Playfield 0,1
Wait Vbl
Dual Priority 1,0
Fade 2,0,$FF0,0,0,0,0,0,0,0,$FFF
W=0
For A=0 To 400
Add W,5
Extension_8_121C 0,0
Extension_8_0346 50
WW=W
For Y=1 To 6
For X=1 To 9
Add WW,2
Extension_8_0388 X*32+CO(WW and $FF),Y*32+SI(WW and $FF),1
Next
Next
Screen Swap
Wait Vbl
If A=368 Then Fade 2
Next
Screen Close 1
Screen Close 0
End Proc
Procedure RAIFADE
Screen Open 0,320,256,4,0
Curs Off : Flash Off : Paper 0 : Pen 1 : Cls
Palette 0,0,0,0
Wait Vbl
Gr Writing 0
Extension_8_1204 14
T$="AMCAF Commands"
X=160-Text Length(T$)/2
Ink 2 : Text X-1,200,T$ : Text X+1,200,T$ : Text X,199,T$ : Text X,201,T$
Ink 1 : Text X,200,T$
Extension_8_1204 10
T$="Rain Fade"
X=160-Text Length(T$)/2
Ink 2 : Text X-1,124,T$ : Text X+1,124,T$ : Text X,123,T$ : Text X,125,T$
Ink 1 : Text X,124,T$
Set Rainbow 0,0,258,"","",""
Set Rainbow 1,0,258,"","",""
Rainbow 0,0,38,258
Fade 2,0,$FFF,0,0
For C=0 To 14
Gosub CALCRAIN
For A=0 To 15
Extension_8_135C 0 To 1 : View
Wait Vbl
Next
Wait 15
Next
Fade 2
For A=0 To 15
Extension_8_1348 0,0 : View
Wait 2
Next
Rainbow Del
Screen Close 0
Pop Proc
CALCRAIN:
R=Rnd(63) : G=Rnd(63) : B=Rnd(63)
RS=Rnd(3)+1 : GS=Rnd(3)+1 : BS=Rnd(3)+1
For Y=0 To 257
Add R,RS : Add G,GS : Add B,BS
If R<0 Then R=0 : RS=Rnd(5)+1
If R>63 Then R=63 : RS=-Rnd(5)-1
If G<0 Then G=0 : GS=Rnd(5)+1
If G>63 Then G=63 : GS=-Rnd(5)-1
If B<0 Then B=0 : BS=Rnd(5)+1
If B>63 Then B=63 : BS=-Rnd(5)-1
Rain(1,Y)= Extension_8_0A0E(R/4,G/4,B/4)
Next
Return
End Proc
Procedure SCHWABLPIC
Screen Open 1,320,256,4,0
Curs Off : Flash Off : Paper 0 : Pen 1 : Cls
Palette 0,0,0,0
Wait Vbl
Extension_8_1204 14
T$="AMCAF Commands"
Ink 1,0 : Text 160-Text Length(T$)/2,200,T$
T$="This effect was made using a rainbow!"
Ink 1,0 : Text 160-Text Length(T$)/2,170,T$
Extension_8_1204 10
T$="Set Rain Colour"
Ink 1,0 : Text 160-Text Length(T$)/2,124,T$
T$="(Enables abusage)"
Ink 1,0 : Text 160-Text Length(T$)/2,140,T$
Unpack 19 To 2 : Screen Hide
Colour 9,$FFF
Screen Open 0,320,512,8,0
Curs Off : Flash Off : Paper 0 : Pen 1 : Cls 0
Screen Display 0,128,40,320,256
Palette 0,0,0,0,0,0,0,0,0,0
For A=0 To 255
Screen Copy 2,0,A,320,A+1 To 0,0,A*2
Screen Copy 2,0,A,320,A+1 To 0,0,A*2+1
Next
Fade 2 To 2
Set Rainbow 0,0,256,"","",""
Extension_8_1330 0,-60
For A=0 To 255
Rain(0,A)=Max( Extension_8_1106(A*32,2)+ Extension_8_1114(A*24,2),0)*40
Next
Wait Vbl
Dual Playfield 0,1
Wait Vbl
Dual Priority 1,0
For Y=0 To 600
Rainbow 0,Y mod 256,38,258
If Y=568 Then Fade 2
Wait Vbl
Next
Rainbow Del
Screen Close 0
Screen Close 1
Screen Close 2
End Proc
Procedure COMMANDLIST
Screen Open 1,320,256,2,0
Curs Off : Flash Off : Paper 0 : Pen 1 : Cls
Palette 0,0
Wait Vbl
Extension_8_1204 14
T$="AMCAF Commands"
Ink 1,0 : Text 160-Text Length(T$)/2,200,T$
T$="This movement was made using a rainbow!"
Ink 1,0 : Text 160-Text Length(T$)/2,170,T$
Extension_8_1204 10
T$="Set Rain Colour"
Ink 1,0 : Text 160-Text Length(T$)/2,124,T$
T$="(Enables abusage)"
Ink 1,0 : Text 160-Text Length(T$)/2,140,T$
Screen Open 0,320,1000,2,0
Curs Off : Flash Off : Paper 0 : Pen 1 : Cls
Screen Display 0,128,40,320,256
Palette 0,0,0,0,0,0,0,0,0,0
Wait Vbl
Dual Playfield 0,1
Wait Vbl
Dual Priority 1,0
Set Rainbow 0,1,128,"","",""
Extension_8_1330 0,-63
Extension_8_1204 14
Ink 1,0
For A=0 To 127
B= Extension_8_1106(A*16,7)+7
C= Extension_8_1106(A*8,7)+7
Rain(0,A)=B+C*16
Next
ST=Start(18) : X=0 : Y=256
Repeat
T$=Peek$(ST,80,Chr$(10)) : Add ST,Len(T$)+1
Text X,Y+Text Base,T$
Add X,160 : If X=320 Then X=0 : Add Y,7
Until Peek(ST)=35
Y=0
Fade 2,0,$888,0,0,0,0,0,0,0,$FFF
Repeat
Rainbow 0,(Y/2) mod 128,38,259
Screen Offset 0,0,Y
Screen Display 0,128,40,320,Min(256,1000-Y)
Inc Y
Wait Vbl
Until Y=982
Rainbow Del : View : Wait Vbl
Screen Close 0
End Proc
Procedure THEEND
Screen Open 0,320,256,4,0
Curs Off : Flash Off : Paper 0 : Pen 1 : Cls
Palette $448,$448,$448,$448
For A=0 To 3
If A=0 Then SX=370 : T$="SORRY!"
If A=1 Then SX=730 : T$="BUT"
If A=2 Then SX=512 : T$="THIS"
If A=3 Then SX=1024 : T$="IS"
VECTEXT[0,7,SX,1536,C+1,T$]
Extension_8_1042 0,C : Extension_8_1258 : Wait Vbl
If C=0 Then Fade 1,$448,$FFF,$448,$FFF Else Fade 1,$448,$448,$FFF,$FFF
C=1-C
Wait 16
Extension_8_121C 0,C
Next
VECTEXT[0,3,730,768,C+1,"THE"]
VECTEXT[0,132,730,768,C+1,"END"]
Extension_8_1042 0,C : Extension_8_1258 : Wait Vbl
If C=0 Then Fade 1,$448,$FFF,$448,$FFF Else Fade 1,$448,$448,$FFF,$FFF
Wait 100
Fade 1,$8,$8,$8,$8
Repeat
Colour Back Colour(0) : View
Until Colour(3)=$8
Screen Close 0
End Proc
Procedure CREDITS
Screen Open 1,320,256,4,0
Curs Off : Flash Off : Paper 0 : Pen 1 : Cls
Palette $8,$8,$8,$8
Wait Vbl
Screen Open 0,320,256,8,0
Curs Off : Flash Off : Paper 0 : Pen 1 : Cls
Palette $8,$448,$448,$888,$448,$888,$888,$CC8,0,$CC8,$CC8,$CC8
Double Buffer
Autoback 0
Wait Vbl
Dual Playfield 0,1
Wait Vbl
Dual Priority 1,0
BP=0 : S=4 : TX=0
Y=20 : T$="CREDITS"
WAI=0 : FAD=0
Do
Extension_8_121C 0,BP
If(TX<10) and(ND=0)
VECTEXT[160-(Len(T$)*20*S)/256,Y-(S*20)/256,S,S, Extension_8_04F8(BP),T$]
Extension_8_1066 0,BP,0,Y-20,320,Y+21
End If
If S=256 Then Inc WAI Else Add S,4
If WAI=6
ND=6 : WAI=0 : S=4
Inc TX
Exit If TX=11
Extension_8_128A 0
Extension_8_12DC 0,BP,1,0 To 1,0
If TX=1 : Y=100 : T$="CODING:" : End If
If TX=2 : Y=170 : T$="CHRIS" : End If
If TX=3 : Y=220 : T$="HODGES" : End If
If TX=4 : Y=100 : T$="MUSIC:" : End If
If TX=5 : Y=170 : T$="NEURO-" : End If
If TX=6 : Y=220 : T$="DANCER" : End If
If TX=7 : Y=100 : T$="GFX:" : End If
If TX=8 : Y=170 : T$="CHRIS" : End If
If TX=9 : Y=220 : T$="HODGES" : End If
End If
If ND
Dec ND
If(TX<10) and(ND=0)
Extension_8_12A4 0,Y-20 To 320,Y+21
Extension_8_12B2 1,0 To 1,1
Extension_8_1234 1,0,0,Y-20 To 320,Y+21
Dual Priority 0,1
Fade 3,$8,$448,$448,$888,$448,$888,$888,$CC8,0,$CC8,$8,$8
End If
End If
If Colour(11)=$8
Extension_8_121C 1,1
Palette $8,$448,$448,$888,$448,$888,$888,$CC8,0,$CC8,$CC8,$CC8
Dual Priority 1,0
End If
Add BP,1,0 To 2
Extension_8_1258
Screen Swap
Wait Vbl
Loop
Fade 3
Repeat
Colour Back Colour(0) : View
Until Colour(9)=0
Screen Close 1
Screen Close 0
End Proc
Procedure FINALNOTE
Screen Open 0,320,256,16,0
Curs Off : Flash Off : Paper 0 : Pen 1 : Cls 0
For A=0 To 15 : Colour A,0 : Next
Wait Vbl
Extension_8_1204 10
T$="Final Note"
Ink 8,0 : Text 160-Text Length(T$)/2,Text Base,T$
Extension_8_1204 14
Y=32+Text Base
Do
Read T$
Exit If T$=""
Ink 8,0 : Text 160-Text Length(T$)/2,Y,T$
Add Y,8
Loop
Extension_8_0F6C 3
Extension_8_0F56 1
Fade 2,0,2,4,6,8,6,4,2,$777,$799,$7BB,$7DD,$7FF,$7DD,$7BB,$799
Timer=0
Do
Exit If Timer>600
Extension_8_0F84 0,Rnd(319),Rnd(255),1
Loop
Fade 2 : Wait 32
Screen Close 0
Pop Proc
Data "This demo has been developped during"
Data "about two weeks... the source code is"
Data "included in the full amcaf-packet."
Data " "
Data "Note that it is a single file intro,"
Data "and although it uses two normal text-"
Data "fonts, these are loaded directly from"
Data "banks and so diskfont.library is not"
Data "required."
Data " "
Data "The Amcaf-Extension was coded in"
Data "about one year of hard work :)"
Data "I've encountered serveral problems"
Data "which appeared along with the code"
Data "becoming greater than 32 KB,"
Data "but finally, here it is!!!"
Data " "
Data "Technical data of this intro:"
Data "Text length : 56926 Bytes"
Data "Bank length : 376626 Bytes"
Data "Compiled : 501664 Bytes"
Data "Instructions: 1986 Lines"
Data "Lines folded: 66 Lines"
Data "Lines total : 1430 Lines"
Data ""
End Proc
Procedure CONTACT
Dim SP(7,1)
Unpack 17 To 0 : Screen Hide
For A=0 To 3
Colour 17+A*4,$F80 : Colour 18+A*4,$FC0 : Colour 19+A*4,$FF0
Next
Y=-300*4 : YS=5
Repeat
If Y>0 Then YS=-(YS*2)/3 : Y=0 Else Inc YS : Add Y,YS
Screen Display 0,128,40+Y/4,320,256
Screen Show
Wait Vbl
Until Y=0 and YS=0
S$="SO IT'S THE END OF THIS SMALL ADVERTISMENT... "
S$=S$+" I HOPE YOU ENJOYED IT AND WOULD LIKE TO BUY"
S$=S$+" THE FULL VERSION OF AMCAF. "
S$=S$+" SPECIAL THANKS MUST GO TO NEURODANCER FOR THIS KEWL TUNE, "
S$=S$+" JAGUAR AND CATWEAZLE FOR BETA-TESTING AND SUGGESTIONS... "
S$=S$+" GREETINGS FLY TO MAGIC, LEMMING, JMS, JAGUAR, CATWEAZLE, DR.DRE,"
S$=S$+" NEURODANCER, BUSTER BUNNY, BARTMAN, DEXTER, PINK, OMER, PRO,"
S$=S$+" HARRY, SCHNEEMANN, MARVIN, BLACK SHADOW, SUGAR, BANDIT, BLONDY,"
S$=S$+" BAZZ, MEDUSA... SPECIAL GREETINGS TO MY PARENTS, MY BROTHER, HANS-PETER,"
S$=S$+" RALF, TOBIAS H., XAVER, ANDREAS, THOMAS ALIAS KRIEGSHELD, T. NOELKER, R. ROTHHARDT, MIKE, MIKE AND"
S$=S$+" JARO... THIS DEMO IS DEDICATED TO SUGAR... BUY AMCAF OR DIE :-))))"
S$=S$+" SIGNING OFF: CHRIS "
SP=0 : TIM=0 : BP=1
FAD=0 : VOL=63
Repeat
If FAD Then Inc FAD : VOL=Max(VOL-1,0) : Extension_8_10C6 VOL
If FAD=128 Then Amal Off : Sprite Off
If FAD>128 Then Extension_8_0FBA 0
If FAD=0 and(Mouse Key or Fire(0) or Inkey$<>"") Then FAD=1
Inc TIM
If TIM>13 and FAD=0
TIM=0
B=Asc(Mid$(S$,BP,1))
Add BP,1,1 To Len(S$)
SP(SP,0)=448 : SP(SP,1)=B
Add SP,1,0 To 7
End If
For A=0 To 7
If SP(A,1)>0 Then Sprite A,SP(A,0),224,SP(A,1) : Add SP(A,0),-3
Next
Wait Vbl
Until FAD=144
Extension_8_10A8
For A=0 To 15 : Extension_8_0FBA 0 : Next
Screen Close 0
End Proc
Procedure VECTEXT[X,Y,SX,SY,C,T$]
ST=Start(16)
Add Y,(20*SY)/256
TX=X
For A=1 To Len(T$)
X=TX+((A*40-24)*SX)/256
P=Asc(Mid$(T$,A,1))-32
AD=ST+Deek(ST+P*2)
Do
X1= Extension_8_0BE4(AD) : Y1= Extension_8_0BE4(AD+2) : Add AD,4
Exit If Deek(AD-4)=$8000
X1=(X1*SX)/256+X : Y1=(Y1*SY)/256+Y
OX=X1 : OY=Y1
Do
X2= Extension_8_0BE4(AD) : Y2= Extension_8_0BE4(AD+2) : Add AD,4
Exit If Deek(AD-4)=$8000
X2=(X2*SX)/256+X : Y2=(Y2*SY)/256+Y
Extension_8_1030 X1,Y1 To X2,Y2,C,-C
X1=X2 : Y1=Y2
Loop
Extension_8_1030 X1,Y1 To OX,OY,C,-C
Loop
Next
End Proc